export enum AuditLogType {
  USER_LOGIN = 'USER_LOGIN',
  USER_LOGOUT = 'USER_LOGOUT',
  USER_CREATE = 'USER_CREATE',
  USER_UPDATE = 'USER_UPDATE',
  USER_DELETE = 'USER_DELETE',
  QUESTION_CREATE = 'QUESTION_CREATE',
  QUESTION_UPDATE = 'QUESTION_UPDATE',
  QUESTION_DELETE = 'QUESTION_DELETE',
  EVALUATION_SUBMIT = 'EVALUATION_SUBMIT',
  EVALUATION_GRADE = 'EVALUATION_GRADE',
  SYSTEM_ERROR = 'SYSTEM_ERROR',
  AUTHENTICATION_FAILED = 'AUTHENTICATION_FAILED',
  AUTHORIZATION_FAILED = 'AUTHORIZATION_FAILED'
}

export interface AuditLogData {
  userId?: string;
  action: AuditLogType;
  details?: Record<string, any>;
  ipAddress?: string;
  userAgent?: string;
}

export interface AuditLogEntry extends AuditLogData {
  _id: string;
  timestamp: Date;
  level: 'info' | 'warn' | 'error';
}
